Using a word processor with accounting data

ABSTRACT

A method of transferring data from a financial program to a word processing program to view and modify financial documents in the word processing program is disclosed. The method may entail selecting a template in an accounting program wherein the template has a field related to the selected template, identifying an open field in the selected template that can be filled in with data from the accounting program, selecting data stored by the accounting program that is appropriate to fill in the open field in the selected template, communicating the selected data and the selected template to the word processor and opening a document in the word processing program that displays the selected template and the selected data in the appropriate field as a word processing document.

This is a continuation of U.S. application Ser. No. 10/985,580, filedNov. 10, 2004, the entire disclosure of which is incorporated herein byreference.

BACKGROUND

Computerized accounting systems have grown in popularity in the pastdecade. The traditional system of double entry accounting has been anatural process to be adapted to computers. As a result of accountingdata being in a computerized format, more and more reports andinformation can be gleaned from the accounting data. However, theability to view the accounting data and related financial documents hasoften been an afterthought in modem accounting programs. Further,creating a more familiar user interface to enter and modify accountingdata without having the user interface mimic the traditional and oftenconfusing ledger pages has been a challenge.

SUMMARY

A method of transferring data from a financial program to a wordprocessing program to view and modify financial documents in the wordprocessing program is disclosed. The method may entail selecting atemplate in an accounting program wherein the template has a fieldrelated to the selected template, identifying an open field in theselected template that can be filled in with data from the accountingprogram, selecting data stored by the accounting program that isappropriate to fill in the open field in the selected template,communicating the selected data and the selected template to the wordprocessor and opening a document in the word processing program thatdisplays the selected template and the selected data in the appropriatefield as a word processing document.

The method may also entail storing the financial document as a wordprocessing file, allowing a user to modify the word processing document,allowing the modifications made on the word processing document to becommunicated to the accounting program, allowing a user to edit existingtemplates, allowing a user to create templates, allowing a user toselect from a displayed list of data fields to be displayed on thetemplate, allowing a user to open a word processing version of a savedfinancial document and referring back to the accounting program toupdate the data displayed in the financial document, allowing a user toselect to communicate a financial document, recognizing that thefinancial document has a related template and communicates the documentusing the template in the word processing program, communicating thedocument by one of email, fax, a communication link to a printer and acommunication link to a storage device and using the word processingprogram in such that the word processing program operates internally andis not visible to the user. The method may also operate on a programmedmemory or on a computer apparatus.

DRAWINGS

FIG. 1 is a block diagram of a computing system that may operate inaccordance with the claims;

FIG. 2 is flowchart of a method in accordance with the claims;

FIG. 3 is an illustration of an embodiment of a sample invoice template;

FIG. 4 is an illustration of an embodiment of a sample template;

FIG. 5 is an illustration of an embodiment of a template managementdisplay;

FIG. 6 is an illustration of an embodiment of a create new templatedisplay; and

FIG. 7 is an illustration of an embodiment of an email of a template.

DESCRIPTION

Although the following text sets forth a detailed description ofnumerous different embodiments, it should be understood that the legalscope of the description is defined by the words of the claims set forthat the end of this patent. The detailed description is to be construedas exemplary only and does not describe every possible embodiment sincedescribing every possible embodiment would be impractical, if notimpossible. Numerous alternative embodiments could be implemented, usingeither current technology or technology developed after the filing dateof this patent, which would still fall within the scope of the claims.

It should also be understood that, unless a term is expressly defined inthis patent using the sentence “As used herein, the term ‘______’ ishereby defined to mean . . . ” or a similar sentence, there is no intentto limit the meaning of that term, either expressly or by implication,beyond its plain or ordinary meaning, and such term should not beinterpreted to be limited in scope based on any statement made in anysection of this patent (other than the language of the claims). To theextent that any term recited in the claims at the end of this patent isreferred to in this patent in a manner consistent with a single meaning,that is done for sake of clarity only so as to not confuse the reader,and it is not intended that such claim term by limited, by implicationor otherwise, to that single meaning. Finally, unless a claim element isdefined by reciting the word “means” and a function without the recitalof any structure, it is not intended that the scope of any claim elementbe interpreted based on the application of 35 U.S.C. § 112, sixthparagraph.

FIG. 1 illustrates an example of a suitable computing system environment100 on which a system for the steps of the claimed method and apparatusmay be implemented. The computing system environment 100 is only oneexample of a suitable computing environment and is not intended tosuggest any limitation as to the scope of use or functionality of themethod of apparatus of the claims. Neither should the computingenvironment 100 be interpreted as having any dependency or requirementrelating to any one or combination of components illustrated in theexemplary operating environment 100.

The steps of the claimed method and apparatus are operational withnumerous other general purpose or special purpose computing systemenvironments or configurations. Examples of well known computingsystems, environments, and/or configurations that may be suitable foruse with the methods or apparatus of the claims include, but are notlimited to, personal computers, server computers, hand-held or laptopdevices, multiprocessor systems, microprocessor-based systems, set topboxes, programmable consumer electronics, network PCs, minicomputers,mainframe computers, distributed computing environments that include anyof the above systems or devices, and the like.

The steps of the claimed method and apparatus may be described in thegeneral context of computer-executable instructions, such as programmodules, being executed by a computer. Generally, program modulesinclude routines, programs, objects, components, data structures, etc.that perform particular tasks or implement particular abstract datatypes. The methods and apparatus may also be practiced in distributedcomputing environments where tasks are performed by remote processingdevices that are linked through a communications network. In adistributed computing environment, program modules may be located inboth local and remote computer storage media including memory storagedevices.

With reference to FIG. 1, an exemplary system for implementing the stepsof the claimed method and apparatus includes a general purpose computingdevice in the form of a computer 110. Components of computer 110 mayinclude, but are not limited to, a processing unit 120, a system memory130, and a system bus 121 that couples various system componentsincluding the system memory to the processing unit 120. The system bus121 may be any of several types of bus structures including a memory busor memory controller, a peripheral bus, and a local bus using any of avariety of bus architectures. By way of example, and not limitation,such architectures include Industry Standard Architecture (ISA) bus,Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, VideoElectronics Standards Association (VESA) local bus, and PeripheralComponent Interconnect (PCI) bus also known as Mezzanine bus.

Computer 110 typically includes a variety of computer readable media.Computer readable media can be any available media that can be accessedby computer 110 and includes both volatile and nonvolatile media,removable and non-removable media. By way of example, and notlimitation, computer readable media may comprise computer storage mediaand communication media. Computer storage media includes both volatileand nonvolatile, removable and non-removable media implemented in anymethod or technology for storage of information such as computerreadable instructions, data structures, program modules or other data.Computer storage media includes, but is not limited to, RAM, ROM,EEPROM, flash memory or other memory technology, CD-ROM, digitalversatile disks (DVD) or other optical disk storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other medium which can be used to store the desired informationand which can accessed by computer 110. Communication media typicallyembodies computer readable instructions, data structures, programmodules or other data in a modulated data signal such as a carrier waveor other transport mechanism and includes any information deliverymedia. The term “modulated data signal” means a signal that has one ormore of its characteristics set or changed in such a manner as to encodeinformation in the signal. By way of example, and not limitation,communication media includes wired media such as a wired network ordirect-wired connection, and wireless media such as acoustic, RF,infrared and other wireless media. Combinations of the any of the aboveshould also be included within the scope of computer readable media.

The system memory 130 includes computer storage media in the form ofvolatile and/or nonvolatile memory such as read only memory (ROM) 131and random access memory (RAM) 132. A basic input/output system 133(BIOS), containing the basic routines that help to transfer informationbetween elements within computer 110, such as during startup, istypically stored in ROM 131. RAM 132 typically contains data and/orprogram modules that are immediately accessible to and/or presentlybeing operated on by processing unit 120. By way of example, and notlimitation, FIG. 1 illustrates operating system 134, applicationprograms 135, other program modules 136, and program data 137.

The computer 110 may also include other removable/non-removable,volatile/nonvolatile computer storage media. By way of example only,FIG. 1 illustrates a hard disk drive 140 that reads from or writes tonon-removable, nonvolatile magnetic media, a magnetic disk drive 151that reads from or writes to a removable, nonvolatile magnetic disk 152,and an optical disk drive 155 that reads from or writes to a removable,nonvolatile optical disk 156 such as a CD ROM or other optical media.Other removable/non-removable, volatile/nonvolatile computer storagemedia that can be used in the exemplary operating environment include,but are not limited to, magnetic tape cassettes, flash memory cards,digital versatile disks, digital video tape, solid state RAM, solidstate ROM, and the like. The hard disk drive 141 is typically connectedto the system bus 121 through a non-removable memory interface such asinterface 140, and magnetic disk drive 151 and optical disk drive 155are typically connected to the system bus 121 by a removable memoryinterface, such as interface 150.

The drives and their associated computer storage media discussed aboveand illustrated in FIG. 1, provide storage of computer readableinstructions, data structures, program modules and other data for thecomputer 110. In FIG. 1, for example, hard disk drive 141 is illustratedas storing operating system 144, application programs 145, other programmodules 146, and program data 147. Note that these components can eitherbe the same as or different from operating system 134, applicationprograms 135, other program modules 136, and program data 137. Operatingsystem 144, application programs 145, other program modules 146, andprogram data 147 are given different numbers here to illustrate that, ata minimum, they are different copies. A user may enter commands andinformation into the computer 20 through input devices such as akeyboard 162 and pointing device 161, commonly referred to as a mouse,trackball or touch pad. Other input devices (not shown) may include amicrophone, joystick, game pad, satellite dish, scanner, or the like.These and other input devices are often connected to the processing unit120 through a user input interface 160 that is coupled to the systembus, but may be connected by other interface and bus structures, such asa parallel port, game port or a universal serial bus (USB). A monitor191 or other type of display device is also connected to the system bus121 via an interface, such as a video interface 190. In addition to themonitor, computers may also include other peripheral output devices suchas speakers 197 and printer 196, which may be connected through anoutput peripheral interface 190.

The computer 110 may operate in a networked environment using logicalconnections to one or more remote computers, such as a remote computer180. The remote computer 180 may be a personal computer, a server, arouter, a network PC, a peer device or other common network node, andtypically includes many or all of the elements described above relativeto the computer 110, although only a memory storage device 181 has beenillustrated in FIG. 1. The logical connections depicted in FIG. 1include a local area network (LAN) 171 and a wide area network (WAN)173, but may also include other networks. Such networking environmentsare commonplace in offices, enterprise-wide computer networks, intranetsand the Internet.

When used in a LAN networking environment, the computer 110 is connectedto the LAN 171 through a network interface or adapter 170. When used ina WAN networking environment, the computer 110 typically includes amodem 172 or other means for establishing communications over the WAN173, such as the Internet. The modem 172, which may be internal orexternal, may be connected to the system bus 121 via the user inputinterface 160, or other appropriate mechanism. In a networkedenvironment, program modules depicted relative to the computer 110, orportions thereof, may be stored in the remote memory storage device. Byway of example, and not limitation, FIG. 1 illustrates remoteapplication programs 185 as residing on memory device 181. It will beappreciated that the network connections shown are exemplary and othermeans of establishing a communications link between the computers may beused.

FIG. 2 is an illustration of a flowchart of steps that may be performedin accordance with the claims. At block 200, a user may select atemplate in an accounting program. For example, one template may be aninvoice template. Other examples of templates may include a sales ordertemplate, a quote template, a customer credit memo template, a customerstatement template and a purchase order template. Additional templatesmay be available. In addition, a user may be permitted to create, modifyor delete templates as will be discussed in relation to FIG. 5.

The template may have a field or many fields related to the selectedtemplate. Referring to FIG. 3 which is an illustration of a sampleinvoice template, ContactName 310 may be a field related to the invoicetemplate. Additionally, CustomerName 320 and BillingAddress 330 may beadditional fields. Fields may be placeholders for data that is stored inthe accounting software than can be retrieve by the template anddisplayed in the template. Logically, ContactName 310 field may retrievethe relevant contact name related to the present invoice. Similarly,CustomerName 320 field and BillingAddress 330 field may retrieve therelevant customer name and billing address related to the presentinvoice from the accounting program. The retrieval of this informationmay be achieved through the use of SmartDoc technology which may searchXML nodes embedded in the template.

Smart documents may be documents in a word processor such Microsoft®Office Word or workbooks in a spreadsheet program such as MicrosoftOffice Excel that are associated with an XML schema so data in adocument, rather than just being a paragraph or range of cells, acquirespecial meaning. For example, rather than knowing that a paragraph isthe second one in the document, it may be much more valuable to knowthat the paragraph is the one destined to contain a product description.What smart documents may offer is a way to make the host applicationmore responsive to the data in a document or workbook. Smart documentshelp the data become meaningful to the host application. In this way,the application, such as Word or Excel, may be more than a feature-richapplication by becoming contextually aware of what users are producingwith those features.

Creating smart document code may be simple and uncomplicated or it cancontain thousands of code lines and reach far into a company'senterprise. Smart document solutions may be written using many modernprogramming systems such as Microsoft Visual Basic® 6.0, MicrosoftVisual Basic .NET, Microsoft Visual C#® NET, or Microsoft Visual C++®development systems. Users may deploy smart documents over a corporateintranet, over the Internet, or through Web sites.

Although a user may create a smart document solution as a dynamic linkedlibrary (DLL), a user may also create a smart document solution as anXML file using an XML editor such as a word processor such as MicrosoftNotepad or Word. Note that a smart document XML file may be limited tostatic text, hyperlinks, document fragments, and images. No matter whichof the two approaches a user may take, on example of the smart documentdevelopment cycle maybe as follows:

1. Attach an XML schema to a document and associate XML elements withthe portions of the document or workbook that will have smart documentactions or help content associated with them.

2. Use the smart document API or the smart document XML file schema towrite code or XML that displays controls in the Document Actions taskpane and takes action when the user interacts with the controls.

3. Store the smart document code and all of the files used by the smartdocument on a file server or a Web server that your users can access.

4. Create an XML expansion pack manifest file that references all of thefiles used by the smart document solution.

5. Use the user interface to reference the XML expansion pack manifestfile and attach the solution to the document or workbook.

6. Distribute the document or workbook as a template. When a usercreates an instance of the document or workbook from the template, thesmart document and any supporting files used by the smart document maybe downloaded and registered locally on the user's computer without anyuser intervention.

At block 210, an open field may be identified in the selected templatethat can be filled in with data from the accounting program. Referringto FIG. 3, ContactName 310 may be a field that may be in the templateand may be identified as a field that can be filled in with data fromthe accounting program. There are a variety of known methods toaccomplish this identification such as simply querying the accountingprogram to determine if a ContactName 310 is stored in relation to theselected invoice.

At block 220, data stored by the accounting program that is appropriateto fill in the open field in the selected template may be selected. Thisdata may be-stored-as any type of file that will be understood by theword processor, for example, as an XML schema file.

At block 230, the selected data and the selected template may be passedto the word processor. The data stored at block 220 may be passed alongwith the selected template to the word processor as any type of filethat may be understood by the word processor, such as an XML schema fileand a template file.

At block 240, a document may be opened in the word processing programand the word processing program may display the selected template andthe selected data in the appropriate field. FIG. 4 may be an example ofa template that is filled in with relevant data and that is beingdisplayed in a word processor. The CustomerContact 310 field from FIG. 3may be filled in with the relevant customer contact “Alan Shen” 410, theCustomerName 320 field from FIG. 3 may be filled in with the relevantcustomer name “Recreation Supplies” 420 and the CustomerAddress filed330 from FIG. 3 may be filled in with the relevant address “45678 MainSt. Aurora, Ill. 23456 UNITED STATES” 430. In addition, fields in whichrelevant data could not be located remain empty. For example, in FIG. 3there is a field ShippingAddress 440 and in FIG. 4, the Ship TO address440 is empty, indicating that a relevant match for the ShippingAddressfield 340 was not located in the accounting program.

Again referring to FIG. 4, the resulting document in the word processormay be stored as a word processing document. For example, if the wordprocessor was Microsoft Word, the invoice in FIG. 4 may be saved as astandard Word file with the traditional doc extension on the file. Inaddition, the user may be allowed to modify the word processingdocument. For example, if the user desired to add a personal message atthe bottom of the invoice in FIG. 4, the user may be permitted to simplytype this message in the invoice. The changes made on word processingdocument transfer may or may not transfer over to the accounting programdepending on the setup of the program and the desires of the user. Forexample, if a personal note was added to an invoice, such information isnot important to the accounting program and the user may select thatchanges may in the word processing program not be communicated to theaccounting program. However, if additional units were added to theinvoice, it may be imperative that these additional units becommunicated to the accounting program and the user may select thatthese changes be communicated to the accounting program.

In addition, some users may simply be more comfortable using a wordprocessing type format to enter data in an accounting program. There maybe an option for all changes that were made in the word processingprogram to be automatically communicated to the accounting program,where the changes will be saved in the accounting program. In effect,the word processing program may be a substitute user interface for theaccounting program.

Users may also be permitted to edit templates that are communicated tothe word processor. FIG. 5 illustrates the ability to select thisoption. For example, the user may select Invoice 500 and under theheading “Templates” 510 all the current Invoice Templates may bedisplayed 520. In this example, there is only one template 520, theSalesInvoice Sample.doc, but there can be more than one template 520.The user may be present the option to create a template 530, modify atemplate 540 or delete a template 550. If a user selects to modify atemplate, a screen such as in FIG. 3 may be displayed.

Referring to FIG. 3, a sample template is displayed. A number ofpotential fields 350 which may be added to a template are displayed, inthis example, in a column. A user can select one of these fields 350 andit will be added to the template. In addition, a user can select anexisting field such as ContactName 310, CustomerName 320, andBillingAddress 330 and can move these fields to a different location onthe invoice, can remove them from the invoice or perform any othercommon word processing operation.

In a similar manner, a user may be able to create entirely newtemplates. Referring to FIG. 5, a user would select to create a newtemplate 530. Referring to FIG. 6, a user then may be asked to name 600the new template. Referring to FIG. 3, a similar screen would bedisplayed to the user, except that there would be no fields displayed onthe screen. However, a user could select from a list of available field350 and add them to a template to create a new template. In addition,the user can modify an existing template to create a new template.Further, a user can add all the functions and features available in aword processing program. For example, a user could add a clip art fileto the invoice, could add different fonts to an invoice, etc.

The user may also be able to open a word processing version of a savedfinancial document and the word processing program may refer back to theaccounting program to update the data displayed in the financialdocument. For example, if a user saved a prepared invoice as invoice123(invoice123.doc), for example, at a point in the future, the user couldopen up invoice123.doc and the fields in invoice123.doc may beautomatically updated. As an example, say a vendor mailed invoice123.docand later the customer of invoice123.doc moved and obtained a newtelephone number. This new address and telephone number of the customermay be added and stored in the accounting program. At some point in thefuture, the vendor may open up invoice123.doc in order to discuss adispute relating to the invoice. Upon opening the invoice, the wordprocessor may refer back to the accounting program to determine whetherany of the data in the displayed fields has been updated. If the data inthe displayed field has been updated (such as the updated address andtelephone number), the new address and telephone number of the clientmay be displayed on the invoice. In an alternate embodiment, the userwill be presented an option to have the fields updated with the currentinformation in the accounting program. In yet another alternative, theuser will be presented the option to accept the version of the data thatwas stored with the word processing document or the most recent versionin the accounting program.

The user may select to communicate a financial document, such as emailthe document, fax the document, communicate the document to a printer,communicate the document to a web site, etc. The program may recognizethat the financial document has a related template and the program maycommunicate the document using the template in the word processingprogram. For example, a user may be using the accounting program and mayselect to print an invoice. The invoice may have a selected templateassociated with the invoice. By using the template additional featuresavailable by using a word processor may be utilized. For example, manyaccounting programs may have a limited selection of fonts that can beused on an invoice where the fonts available to a modern word processormay be quite numerous. By simply selecting to print the invoice, theprogram may forward the invoice template and the relevant invoice datato the word processor, which may then format the data and print theinvoice. By using the word processor, superior printing results andoptions may be obtained. As another example, FIG. 8 illustrates anexample where a template (an invoice in this case) is communicated to anemail program using a word processor to format the display of the data.As can be seen in FIG. 7, the invoice in the email looks virtuallyidentical to the email in the FIG. 4 which makes sense as both are usingthe word processor to format the template and the data in the relevantfields.

In addition, the word processor may work entirely in the background ofthe program. For example, the user may never see a word processor beginexecution, format the template and the received data, display the dataand then print the data. The word processing program may work entirelyin the memory and processor of the computer and there may be no visualindication to the user that a word processor was involved withcommunicating the document.

Although many of the descriptions herein have focused on invoices, otherfinancial documents may also benefit from such a program. For example,virtually any financial report from the accounting program could have animprove visual appearance if a template and data were sent to a wordprocessor where the resulting document could be easily formatted in thehopes of creating a more visually appealing and useful document.Datasheet for customers, vendors, employees, items or services alsocould benefit as could item receipts, vendor credit memos, cash sales,cash purchases, phantom checks (check for record keeping purposes),customer payment receipts, timesheets, time entries, vendor bills,journal entries, credit card charges, deposit slips, fund transfers,etc.

Although the forgoing text sets forth a detailed description of numerousdifferent embodiments, it should be understood that the scope of thepatent is defined by the words of the claims set forth at the end ofthis patent. The detailed description is to be construed as exemplaryonly and does not describe every possible embodiment because describingevery possible embodiment would be impractical, if not impossible.Numerous alternative embodiments could be implemented, using eithercurrent technology or technology developed after the filing date of thispatent, which would still fall within the scope of the claims.

Thus, many modifications and variations may be made in the techniquesand structures described and illustrated herein without departing fromthe spirit and scope of the present claims. Accordingly, it should beunderstood that the methods and apparatus described herein areillustrative only and are not limiting upon the scope of the claims.

1. A method of transferring data from a financial program to a wordprocessing program to view and modify financial documents in the wordprocessing program comprising: selecting a template in an financeprogram wherein the template has a field related to the selectedtemplate; identifying an open field in the selected template that can befilled in with data from the finance program; selecting data stored bythe finance program that is appropriate to fill in the open field in theselected template; communicating the selected data and the selectedtemplate to the word processing program; opening a document in the wordprocessing program that displays the selected template and the selecteddata in the appropriate field as a word processing document, andallowing the modifications made on the word processing document to becommunicated to the finance program.
 2. The method of claim 1, furthercomprising storing the financial document as a word processing file. 3.The method of claim 1, further comprising allowing a user to modify theword processing document.
 4. The method of claim 1, further comprisingallowing a user to edit existing templates.
 5. The method of claim 1,further comprising allowing a user to create templates.
 6. The method ofclaim 1, further comprising allowing a user to select from a displayedlist of data fields to be displayed on the template.
 7. The method ofclaim 1, further comprising allowing a user to open a word processingversion of a saved financial document and the referring back to thefinance program to update the data displayed in the financial document.8. The method of claim 1, further comprising allowing a user to selectto communicate a financial document, recognizing that the financialdocument has a related template and communicating the document using thetemplate in the word processing program.
 9. The method of claim 8,further comprising communicating the financial document by one of email,fax, a communication link to a printer and a communication link to astorage device.
 10. The method of claim 1, further comprising printingusing the word processing program in such that the word processingprogram operates internally and is not visible to the user.
 11. Acomputer storage medium having computer executable instructions forperforming a method of transferring data from a financial program to aword processing program to view and modify financial documents in theword processing program comprising: selecting a template in an financeprogram wherein the template has a field related to the selectedtemplate; identifying an open field in the selected template that can befilled in with data from the finance program; selecting data stored bythe finance program that is appropriate to fill in the open field in theselected template; communicating the selected data and the selectedtemplate to the word processing program; opening a document in the wordprocessing program that displays the selected template and the selecteddata in the appropriate field as a word processing document; andallowing the changes made on word processing document to be communicatedto the finance program.
 12. The computer storage medium of claim 11,further comprising storing the financial document as a word processingfile.
 13. The computer storage medium of claim further comprisingallowing a user to modify the word processing document.
 14. The computerstorage medium of claim 11, further comprising allowing a user to editexisting templates.
 15. The computer storage medium of claim 11, furthercomprising allowing a user to create templates.
 16. The computer storagemedium of claim 11, further comprising allowing a user to select from adisplayed list of data fields to be displayed on the template.
 17. Thecomputer storage medium of claim 11, further comprising allowing a userto open a word processing version of a saved financial document andreferring back to the finance program to update the data displayed inthe financial document.
 18. The computer storage medium of claim 11,further comprising allowing a user to select to communicate a financialdocument, recognizing that the financial document has a related templateand communicating the document using the template in the word processingprogram.
 19. The computer storage medium of claim 18, further comprisingcommunicating the financial document by one of email, fax, acommunication link to a printer and a communication link to a storagedevice.
 20. The computer storage medium of claim 11, further comprisingprinting using the word processing program in such that the wordprocessing program operates internally and is not visible to the user.21. A computing apparatus, comprising: a display unit that is capable ofgenerating video images; an input device; a processing apparatusoperatively coupled to said display unit and said input device, saidprocessing apparatus comprising a processor and a memory operativelycoupled to said processor, a network interface connected to a networkand to the processing apparatus; said processing apparatus beingprogrammed to select a template in an finance program wherein thetemplate has a field related to the selected template; said processingapparatus being programmed to identify an open field in the selectedtemplate that can be filled in with data from the finance program; saidprocessing apparatus being programmed to select data stored by thefinance program that is appropriate to fill in the open field in theselected template; said processing apparatus being programmed tocommunicate the selected data and the selected template to the wordprocessing program; said processing apparatus being programmed to open adocument in the word processing program that displays the selectedtemplate and the selected data in the appropriate field as a wordprocessing document; and said processing apparatus being programmed toallow the modifications made on the word processing document to becommunicated to the finance program.
 22. The computing apparatus ofclaim 21, the processing apparatus being programmed to store thefinancial document as a word processing file.
 23. The computingapparatus of claim 21, the processing apparatus being programmed toallow a user to modify the word processing document.
 24. The computingapparatus of claim 21, the processing apparatus being programmed toallow a user to edit existing templates.
 25. The computing apparatus ofclaim 21, the processing apparatus being programmed to allow a user tocreate templates.
 26. The computing apparatus of claim 21, theprocessing apparatus being programmed to allow a user to select from adisplayed list of data fields to be displayed on the template.
 27. Thecomputing apparatus of claim 21, the processing apparatus beingprogrammed to allow a user to open a word processing version of a savedfinancial document and referring back to the finance program to updatethe data displayed in the financial document.
 28. The computingapparatus of claim 21, the processing apparatus being programmed toallow a user to select to communicate a financial document, to recognizethat the financial document has a related template and to communicatethe document using the template in the word processing program.
 29. Thecomputing apparatus of claim 28, the processing apparatus beingprogrammed to communicate the financial document by one of email, fax, acommunication link to a printer and a communication link to a storagedevice.
 30. The computing apparatus of claim 21, the processingapparatus being programmed to print using the word processing program insuch that the word processing program operates internally and is notvisible to the user.